Skip to content

feat(packaging): add deb and rpm desktop targets#4069

Open
bigpod98 wants to merge 7 commits into
pingdotgg:mainfrom
bigpod98:main
Open

feat(packaging): add deb and rpm desktop targets#4069
bigpod98 wants to merge 7 commits into
pingdotgg:mainfrom
bigpod98:main

Conversation

@bigpod98

@bigpod98 bigpod98 commented Jul 17, 2026

Copy link
Copy Markdown

What Changed

Added additional outputs to packaging script.

Why

Allows output of 2 linux packaging systems Deb and RPM
issue #4030

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Low Risk
Packaging-only changes to the desktop artifact script with new tests; no runtime app logic, auth, or data handling.

Overview
Adds Linux .deb and .rpm desktop packaging alongside the existing AppImage flow, with new dist:desktop:deb and dist:desktop:rpm scripts that write artifacts to packaging-output/.

The desktop build script now stages a /usr/bin/t3 headless CLI for deb/rpm via renderLinuxHeadlessLauncher (Electron as Node → server bin.mjs), maps it with electron-builder fpm, and sets distro-specific runtime deps plus Linux package metadata (maintainer, vendor, synopsis, syncDesktopName). Staged package.json fields are expanded for packagers (homepage, license, desktopName, richer description/author). Tests cover deb/rpm config and launcher output for production vs nightly product names.

Reviewed by Cursor Bugbot for commit ab03901. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add DEB and RPM desktop build targets for Linux packaging

  • Adds dist:desktop:deb and dist:desktop:rpm npm scripts in package.json that invoke scripts/build-desktop-artifact.ts with the appropriate Linux target and output to packaging-output/.
  • Linux builds now include distro-specific runtime dependency lists (DEB_DEPENDENCIES, RPM_DEPENDENCIES) and enriched package metadata (maintainer, vendor, synopsis, homepage, license).
  • Adds a renderLinuxHeadlessLauncher function that generates a POSIX shell script setting ELECTRON_RUN_AS_NODE=1 and executing the desktop binary; this script is installed to /usr/bin/t3 in DEB/RPM packages.
  • Adds quotePosixShellArgument utility to safely quote shell arguments used in the launcher script.

Macroscope summarized ab03901.

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: da73b42b-badc-4970-a794-892d2e54b937

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Jul 17, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jul 17, 2026
@macroscopeapp

macroscopeapp Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR adds new Linux packaging targets (deb/rpm), introducing new build capability. While the changes are well-tested packaging configuration rather than runtime code, new features adding capability warrant human review, especially from an author unfamiliar with this build infrastructure.

You can customize Macroscope's approvability policy. Learn more.

@macroscopeapp
macroscopeapp Bot dismissed their stale review July 17, 2026 01:36

Dismissing prior approval to re-evaluate 03b684c

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jul 17, 2026
juliusmarminge and others added 4 commits July 17, 2026 22:36
Install a t3 launcher in DEB and RPM artifacts that runs the bundled server through Electron's Node mode, while preserving t3code as the desktop command. Cover both package mappings and production/nightly install paths with tests.
@macroscopeapp
macroscopeapp Bot dismissed their stale review July 20, 2026 05:32

Dismissing prior approval to re-evaluate bfd0201

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Want fixes drafted automatically? Bugbot Autofix can create code changes for findings. A team admin can enable Autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit bfd0201. Configure here.

Comment thread scripts/build-desktop-artifact.ts Outdated
Pin electron-builder's standard RPM requirements and add alsa-lib, libsecret, and mesa-libgbm so desktop and headless commands work on minimal installations without relying on weak dependencies.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants